// pages/entry/index.js
const app = getApp()
import request from '../../utils/request'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log('%c APP', 'color: #333; font-size: 16px;', app)
  },

  async doLogin() {
    const { openid }= app.globalData.userInfo
    
    console.log('%c OPENID', 'color: #333; font-size: 16px;', openid)

    wx.showLoading({ title: '登录中', mask: true })

    const loginResult = await request.get('/user/login', { openid })
    console.log('%c 登录结果', 'color: #333; font-size: 16px;', loginResult)
    if (loginResult.code === 302) {
      wx.showToast({
        title: '请先注册',
        mask: true,
        icon: 'error',
        duration: 1000
      })
    } else {
      // 合并全局数据
      Object.assign(app.globalData.userInfo, loginResult.data)
      wx.switchTab({
        url: '/pages/index/index',
      })

      wx.hideLoading()
    }
  },

  async doRegister() {
    const { openid } = app.globalData.userInfo
    const body = {
      gender: 0,
      name: '',
      nick_name: '',
      openid,
      uid: '',
      avatar_url: ''
    }

    await request.get('/user/find', { openid }).then(user => {
      if (user.code === 200) {
        wx.showToast({ title: '已经注册过的用户，可直接登录', mask: true, icon: 'none' })
        return void 0
      } else {
        wx.getUserProfile({
          desc: '获取您的信息用于登录/注册',
          lang: 'zh_CN'
        }).then(({ userInfo: { gender, avatarUrl, nickName } }) => {
            body.gender = gender
            body.avatar_url = avatarUrl
            body.nick_name = nickName
        }).then(() => {
          wx.showLoading({ title: '注册中', mask: true })
          request.post('/user/create', body).then(createResult => {
            if (createResult.code == 204) {
              wx.showToast({ title: '已经注册过的用户，可直接登录', mask: true, icon: 'success' })
            } else {
              wx.showToast({ title: '注册成功', mask: true, icon: 'success', duration: 1000 })
            }
            console.log('创建用户成功', createResult)
          }).catch(err => {
            console.log('创建用户出错', err)
            wx.showToast({ title: '注册失败，请重试', mask: true, icon: 'error' })
          })
        })
      }
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})